package main

import "fmt"

func plus(a int, b int) int{
	return a + b
}

// 定义warpper(),返回一个func，且func中传递一个参数为int类型，返回int
//func wrapper() func(int) (int, int){
//func wrapper() func(int) (int){
func wrapper() func(...int) (int){
	var n int = 20
	//return func (m int) (int, int){
	//return func (m int) (int){
	return func (m ...int) (int){
		//n = n + m  // 闭包中变量值如果发生改变，下一次调用使用该变量则为改变后的值
		var res int
		for _,v := range m{
			res += v
			//fmt.Println(res)
		}
		res += n
		//res := n + m
		//return res, n
		return res
	}
}



func main() {
	f := wrapper()
	fmt.Println(f(10))
	fmt.Println(f(20, 40))
	fmt.Println(f(30))
}
